package com.reduce;

import java.io.IOException;

import com.model.Number;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

/**
 * 继承Reducer类需要定义四个输出、输出类型泛型：
 * 四个泛型类型分别代表：
 * KeyIn        Reducer的输入数据的Key，这里是每行文字中的单词"hello"
 * ValueIn      Reducer的输入数据的Value，这里是每行文字中的次数
 * KeyOut       Reducer的输出数据的Key，这里是每行文字中的单词"hello"
 * ValueOut     Reducer的输出数据的Value，这里是每行文字中的出现的总次数
 * @author 10377
 */
public class SortReduce extends Reducer<Number, NullWritable, Number, NullWritable>  {
    //序号初始为1
    int num = 1;
    @Override
    protected void reduce(Number key, Iterable<NullWritable> values, Context context) throws IOException, InterruptedException {
        for (NullWritable value : values) {
            //读取一行序号+1
            key.setId(num);
            num += 1;
            context.write(key,value);
        }
    }
}